#pragma once

#include <iostream>
#include <string>
#include <gl/glut.h>
#ifdef WIN32
	#include <windows.h>
#endif

#define ESC_KEY     27
#define ENTER_KEY   13
#define PLUS_KEY    43
#define MINUS_KEY   45
#define MULT_KEY    42
#define DIV_KEY     47
#define KEY_1       49
#define KEY_2       50

#define REFRESH_TIME 0.022f

using namespace std;

//#if !defined(_DEBUG)
////Delete console
//#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
//#endif

// Type redefinition for portability purposes
#if defined(_MSC_VER)
typedef unsigned char   UCHAR;
typedef char            CHAR;
typedef unsigned short  UINT16;
typedef short           INT16;
typedef unsigned int    UINT32;
typedef int             INT32;
typedef float           FLOAT32;
typedef double          FLOAT64;
#endif
#ifndef WIN32
typedef bool            BOOL;
#endif

typedef enum
{
    EAST        = 0,
    NORTH_EAST  = 1,
    NORTH       = 2,
    NORTH_WEST  = 3,
    WEST        = 4,
    SOUTH_WEST  = 5,
    SOUTH       = 6,
    SOUTH_EAST  = 7,
    IDLE        = 8,
} Direction;

